The basic communication unit within the Asynchronous Transfer Mode ("ATM") protocol is the cell. An ATM cell is 53 octets in length, and includes a header and a payload. The cell header occupies 5 octets, and the remaining 48 octets are reserved for the payload. The cell destination is identified by a Virtual Path Identifier/Virtual Connection Identifier ("VPI/VCI") located in the header. The VPI is either 8 or 12 bits in length, depending on whether the link is a Network to Network Interface ("NNI") or a User Network Interface ("UNI"). The VCI is 16 bits in length. Thus, the VPI and VCI collectively provide a 24 or 28 bit address.
Supporting the total number of connections defined by the VPI/VCI address space would be impractical for most commercial ATM switch applications due to large memory requirements and attendant costs. For this reason, it is common practice to translate the VPI/VCI address space to a smaller address space by address translation techniques. In typical ATM switches, the incoming VPI/VCI address is translated into a smaller, local address space whose width defines the number of connections supported by the switch. The cell is directed to one or more ports within the switch based on the local address. In an output process, a remapping is executed to define an outgoing VPI/VCI address for the cell.
Remapping the outgoing VPI/VCI becomes memory intensive when supporting multicast operation since a single incoming VPI/VCI may spawn multiple VPI/VCIs for transmission. For example, if an ATM switch includes 14 IOMs, each having 8 I/O ports, it is possible that one input may spawn 112 outputs. It is theoretically possible to employ a lookup table at each port to remap the outgoing address to the proper destination VPI/VCI. However, such an architecture would be impractical since it would require an inordinately large amount of memory. A more efficient technique for handling multicast cells would therefore be of benefit.